package com.leetcode.alibaba;

import java.util.HashMap;
import java.util.Map;

/**
 * 给出一个整型数组 numbers 和一个目标值 target，请在数组中找出两个加起来等于目标值的数的下标，返回的下标按升序排列。
 * <p>
 * 例如：
 * 给出的数组为 [20, 70, 110, 150] , 目标值为90
 * <p>
 * 返回一个数组 [1,2] ，因为 numbers _1+numbers _2=20+70=90numbers
 */
public class 两数之和 {

	public int[] twoSum(int[] numbers, int target) {
		Map<Integer, Integer> map = new HashMap();
		for (int i = 0; i < numbers.length; i++) {
			if (map.containsKey(target - numbers[i])) {
				return new int[]{map.get(target - numbers[i]) + 1, i + 1};
			}
			map.put(numbers[i], i);
		}
		return null;
	}
}
